home *** CD-ROM | disk | FTP | other *** search
- 10 clrfl and flag:sta flag:rts
- 20 setfl ora flag:sta flag:rts
- 30 clrfla and flaga:sta flaga:rts
- 40 setfla ora flaga:sta flaga:rts
- 100 ;:;******** set v0300:;
- 110 l2 lda #0:sta flaga:lda #52:sta flag:l2a ldx # 11
- 120 l3 lda l1,x:sta vektab,x:dex
- 130 bpl l3:sei:lda #<virq:sta $0314:lda #>virq:sta $0315
- 140 lda #<brkirq:sta $0316:lda #>brkirq:sta $0317
- 150 lda ciati+14:ora #128:sta ciati+14;echtzeituhr 50 hz
- 160 lda #<nbsout:sta $0326:lda #>nbsout:sta $0327
- 170 lda #<nbsin:sta $0324:lda #>nbsin:sta $0325:cli:rts
- 180 ;:;******** neuer irq:;
- 190 virq lda ciati+13:bpl endirq:and #4:beq endirq:jmp alarm
- 200 endirq jmp $ea31
- 210 ;:;******** neuer reset:;
- 220 nreset jsr $fda3;irq setzen
- 230 jsr $fd50:jsr $fd15:jsr l20:lda #8:sta diskadr
- 240 cli:;**** basic:jsr l2
- 250 jsr $e3bf:.if v&1-1:.goto 260
- 251 ldy #79:xxx1 lda keyrtext,y:sta keytext,y:dey:bpl xxx1
- 252 lda #>prganf-256:.goto 270
- 260 lda #>prganf
- 270 sta basend+1:sta strstart+1:sta $0284
- 280 lda bastart:ldy bastart+1:jsr $a408
- 290 lda #<resout:ldy #>resout:jsr strout
- 300 jsr $e430:ldx #$fb:txs
- 320 .if fs&1-1:.goto 323
- 321 lda $028d:cmp #4:bne res1
- 323 .if fs&3:.goto 325
- 324 .goto 329
- 325 jsr $aad7:lda #3:ldx #<exestr:ldy #>exestr:jsr $ffbd:lda #8:sta devadr
- 326 lda #>ready-1:pha:lda #<ready-1:pha:lda #$80:jsr $ff90:jmp enexe
- 327 exestr .asc "@r*":.if fs&1-1:.goto 330
- 329 res1 jmp ready
- 330 ;:;******** neuer nmi:;
- 340 nnmi jsr $f6bc;time erhoehen
- 350 jsr getstp:beq brkirq:oldnmi jmp $fe72;stop-taste nicht gedrueckt
- 360 brkirq jsr $fd15:jsr $fda3:jsr l21
- 370 ;****basic:jsr clrch:jsr l2a:lda # 0
- 380 sta flaga:sta aktio:lda flag:and #%10001010:ora #%00110100:sta flag
- 390 jsr $a67a:cli
- 400 ;**** fehlermeldung
- 410 ldx # 128:v0300 txa ;fehlerm. ausgeben:bpl l6
- 420 jmp ready ;keine fehlermeldung:l6 txa :asl
- 430 tax :lda errtab,x:sta flag22
- 440 lda errtab+1,x:sta flag22+1:jsr clrch
- 450 lda # 0:sta aktio
- 460 jsr $aad7:jsr $ab45:ldy # 0
- 470 l7 lda (flag22),y:pha :and # 127
- 480 jsr basout:iny :pla
- 490 bpl l7:jsr $a67a:lda # 105
- 500 ldy # 163:jsr strout;error ausg.:ldy znr+1
- 510 iny :beq l8:jsr $bdc2;"in zn" ausgeben
- 520 jsr $aad7:jsr l9;zeile listen
- 530 l8 lda #255-16:jsr clrfla:jmp ready
- 540 ;:;******** jsr $ff5b:;
- 550 l20 jsr l21:jmp $ff5e
- 560 ;******** jsr $e518
- 570 l21 lda # 3:sta aktout:lda # 0
- 580 sta aktin:ldx # 11:l22 lda $ecdb,x
- 590 sta $d022,x:dex :bpl l22
- 600 lda # 0:colrahm =*-1:sta $d020:lda #0:colbck =*-1:sta $d021
- 610 ldx # 32:jsr $e5aa:lda # 0
- 620 sta $0291:sta flagcf:lda # 72
- 630 sta $028f:lda # 235:sta $0290
- 640 lda # 10:sta $0289:sta $028c
- 650 lda # 13:coltext =*-1:sta $0286:lda #4:sta $028b:lda #$0c:sta $cd:sta $cc
- 651 jmp $e544
- 660 ;:;******** eingabe abwarten:;
- 665 autooff lda #255-18:jmp clrfla
- 670 aaaa1 jsr autooff:nn0302 lda flaga:and #64+16:beq nn032a
- 680 and #64:beq nn032a1:jmp env0302
- 690 nn032a1 jsr auv0302:auret =*
- 700 nn032a jsr $a560:meret stx zeibas:sty zeibas+1:jsr chrget:tax:beq aaaa1
- 701 ldx #$ff:stx $3a
- 702 cmp #"*":beq aur2:cmp #160:bne aur3
- 703 aur2 jsr chrget:bcc nn032b
- 705 aur3 jsr autooff
- 710 jsr chr(NULL)t:tax:beq nn0302:bcc nn032b:jmp $a496
- 720 nn032b jsr $a96b:cmp #0:bne aur1:lda #16:bit flaga:bne aaaa1
- 724 aur1 lda #8:bit flag:bne nn032c
- 725 lda #2:bit flag:beq nn032f:jsr $a57c:jmp $a4a2
- 730 nn032f jsr $a579:sty $0b:lda flagff:beq klaok
- 740 jmp syntax:klaok jmp $a4a4
- 750 nn032c ldy #0:ldx #5:nn032d lda (zeibas),y:sta $01fb,x
- 760 beq nn032e:iny:inx:bne nn032d
- 770 nn032e stx $0b:jmp $a4a4
- 780 ;:;******** ascii -> basic-tokens:;
- 790 v0304 lda #0:sta flagff;zaehler fuer klammer:ldx zeibas
- 800 v0304x2 ldy # 4:sty hklist:l23 lda buffer,x
- 810 bpl l24:cmp # 255;>128:beq l28
- 820 inx :bne l23:l24 cmp # 32;space ueberlesen
- 830 beq l28:sta hochk:cmp # 34;hochkomma print
- 840 beq l32;bis naechstes hk direkt:bit hklist;data-zeile ?:bvs l28;rest direkt
- 850 cmp # 63:bne l25:lda # 153
- 860 bne l28:l25 cmp # 48:bcc l26
- 870 cmp # 60:bcc l28:l26 sty flag71
- 880 ldy # 0:sty zeibuf:dey
- 890 stx zeibas:dex :jsr l35
- 900 beq l33:l27 ldy flag71:l28 inx
- 910 iny :sta buffer-5,y:lda buffer-5,y
- 920 beq l34:cmp #"(":beq l28a1:cmp #$a3;tab(:beq l28a1
- 930 cmp #$a6;spc(:bne l28a:l28a1 inc flagff:bne l28b
- 940 l28a cmp #")":bne l28b:dec flagff
- 950 l28b sec :sbc # 58
- 960 beq l29:cmp # 73:bne l30
- 970 l29 sta hklist:l30 sec :sbc # 85;rem-code:beq l23a1
- 971 cmp #codauto-85-58:bne l23:lda #0
- 980 l23a1 sta hochk:l31 lda buffer,x
- 990 beq l28:cmp hochk:beq l28
- 1000 l32 iny :sta buffer-5,y:inx
- 1010 bne l31:l33 lda buffer,x:bpl l27
- 1020 l34 sta buffer-3,y:dec zeibas+1:lda # 255
- 1030 sta zeibas
- 1040 l34a rts
- 1050 ;:;**** befehl (asc) auswerten:;:l35 iny
- 1060 inx :l36 lda buffer,x:sec
- 1070 sbc oldasc,y:beq l35:cmp # 128
- 1080 bne l38:l37 ora zeibuf:rts
- 1090 l38 ldx zeibas:inc zeibuf:l39 iny
- 1100 lda oldasc-1,y:bpl l39:lda oldasc,y
- 1110 bne l36:ldy # 255:dex
- 1120 ;:;**** neue befehle:;:l40 inx :iny :l41 lda buffer,x
- 1130 sec :sbc asctab,y:beq l40
- 1140 cmp # 128:beq l37:ldx zeibas
- 1150 inc zeibuf:l42 iny :lda asctab-1,y
- 1160 bpl l42:lda asctab,y:bne l41
- 1170 v0308xxx rts
- 1180 ;:;******** befehl ausfuehren:;
- 1190 v0308 lda zeibas+1:cmp #3:bcc l44:bit flag:bvc l44
- 1200 jsr ltrace:l44 jsr chrget:beq l45xxx:cmp #"!":beq l45aa
- 1210 cmp #".":beq l45ab:cmp #firscode
- 1220 bcc l45:cmp #lastcode:bcc l46:l45 ldx #oldanz-1
- 1230 l45a cmp oldtab,x:beq l45b:dex:bpl l45a
- 1240 l45c jsr chr(NULL)t:jmp $a7e7:l45aa jmp $c006:l45ab jmp mmon
- 1250 l45b txa:asl:tay:jsr l450a:l45xxx jmp $a7ae
- 1260 l450a lda newadr+1,y:pha:lda newadr,y:pha:jmp chrget
- 1270 l46 jsr l48
- 1280 jmp $a7ae:l48 sec :sbc # 204
- 1290 asl :tay :lda adrtab+1,y
- 1300 pha :lda adrtab,y:pha
- 1310 jmp chrget
- 1315 rscr =*;********
-